TPTP Problem File: DAT153^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT153^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Coinductive stream 491
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : coinductive_stream__491.p [Bla16]

% Status   : Theorem
% Rating   : 0.33 v8.1.0, 0.25 v7.5.0, 0.00 v7.1.0
% Syntax   : Number of formulae    :  351 ( 145 unt;  57 typ;   0 def)
%            Number of atoms       :  785 ( 302 equ;   0 cnn)
%            Maximal formula atoms :   24 (   2 avg)
%            Number of connectives : 3264 ( 100   ~;  21   |;  33   &;2811   @)
%                                         (   0 <=>; 299  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   6 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :  180 ( 180   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   56 (  53 usr;   3 con; 0-4 aty)
%            Number of variables   :  784 (  63   ^; 649   !;  27   ?; 784   :)
%                                         (  45  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 15:15:11.527
%------------------------------------------------------------------------------
%----Could-be-implicit typings (7)
thf(ty_t_Extended__Nat_Oenat,type,
    extended_enat: $tType ).

thf(ty_t_Stream_Ostream,type,
    stream: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_Int_Oint,type,
    int: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (50)
thf(sy_cl_Groups_Ozero,type,
    zero: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Fields_Ofield,type,
    field: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Omult__zero,type,
    mult_zero: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Osemiring__1,type,
    semiring_1: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Nat_Osemiring__char__0,type,
    semiring_char_0: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Fields_Odivision__ring,type,
    division_ring: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Osemigroup__mult,type,
    semigroup_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Ocomm__semiring__1,type,
    comm_semiring_1: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__idom,type,
    linordered_idom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__ring,type,
    linordered_ring: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Fields_Olinordered__field,type,
    linordered_field: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oab__semigroup__mult,type,
    ab_semigroup_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semidom,type,
    linordered_semidom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__ring__strict,type,
    linord581940658strict: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Archimedean__Field_Ofloor__ceiling,type,
    archim1727834104eiling: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Osemiring__no__zero__divisors,type,
    semiri1193490041visors: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semiring__strict,type,
    linord20386208strict: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Archimedean__Field_Oarchimedean__field,type,
    archim1804426504_field: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
    canoni770627133id_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__comm__semiring__strict,type,
    linord893533164strict: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Osemiring__no__zero__divisors__cancel,type,
    semiri1923998003cancel: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Archimedean__Field_Oceiling,type,
    archimedean_ceiling: 
      !>[A: $tType] : ( A > int ) ).

thf(sy_c_Coinductive__Stream__Mirabelle__dydkjoctes_Oscount,type,
    coindu1365464361scount: 
      !>[S: $tType] : ( ( ( stream @ S ) > $o ) > ( stream @ S ) > extended_enat ) ).

thf(sy_c_Coinductive__Stream__Mirabelle__dydkjoctes_Osfirst,type,
    coindu76177514sfirst: 
      !>[S: $tType] : ( ( ( stream @ S ) > $o ) > ( stream @ S ) > extended_enat ) ).

thf(sy_c_Extended__Nat_Oenat,type,
    extended_enat2: nat > extended_enat ).

thf(sy_c_Extended__Nat_Oenat_Ocase__enat,type,
    extended_case_enat: 
      !>[T: $tType] : ( ( nat > T ) > T > extended_enat > T ) ).

thf(sy_c_Extended__Nat_Oenat_Orec__enat,type,
    extended_rec_enat: 
      !>[T: $tType] : ( ( nat > T ) > T > extended_enat > T ) ).

thf(sy_c_Extended__Nat_Oenat_Osize__enat,type,
    extended_size_enat: extended_enat > nat ).

thf(sy_c_Extended__Nat_Oinfinity__class_Oinfinity,type,
    extend1396239628finity: 
      !>[A: $tType] : A ).

thf(sy_c_Extended__Nat_Othe__enat,type,
    extended_the_enat: extended_enat > nat ).

thf(sy_c_Fields_Oinverse__class_Oinverse,type,
    inverse_inverse: 
      !>[A: $tType] : ( A > A ) ).

thf(sy_c_Finite__Set_Ocard,type,
    finite_card: 
      !>[B: $tType] : ( ( set @ B ) > nat ) ).

thf(sy_c_Groups_Otimes__class_Otimes,type,
    times_times: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Groups_Ozero__class_Ozero,type,
    zero_zero: 
      !>[A: $tType] : A ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Int_Onat,type,
    nat2: int > nat ).

thf(sy_c_Linear__Temporal__Logic__on__Streams_OUNTIL,type,
    linear1341015445_UNTIL: 
      !>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( ( stream @ A ) > $o ) > ( stream @ A ) > $o ) ).

thf(sy_c_Linear__Temporal__Logic__on__Streams_Oalw,type,
    linear1386806755on_alw: 
      !>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( stream @ A ) > $o ) ).

thf(sy_c_Linear__Temporal__Logic__on__Streams_Oev,type,
    linear505997466_on_ev: 
      !>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( stream @ A ) > $o ) ).

thf(sy_c_Linear__Temporal__Logic__on__Streams_Owait,type,
    linear1335279038n_wait: 
      !>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( stream @ A ) > nat ) ).

thf(sy_c_Nat_Osemiring__1__class_Oof__nat,type,
    semiring_1_of_nat: 
      !>[A: $tType] : ( nat > A ) ).

thf(sy_c_Nat_Osize__class_Osize,type,
    size_size: 
      !>[A: $tType] : ( A > nat ) ).

thf(sy_c_Nat__Transfer_Otransfer__morphism,type,
    nat_tr1645093318rphism: 
      !>[B: $tType,A: $tType] : ( ( B > A ) > ( B > $o ) > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Pure_Otype,type,
    type: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Stream_Osdrop,type,
    sdrop: 
      !>[A: $tType] : ( nat > ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_P,type,
    p: ( stream @ a ) > $o ).

thf(sy_v__092_060omega_062_H____,type,
    omega: stream @ a ).

%----Relevant facts (253)
thf(fact_0__C0_Oprems_C,axiom,
    ( linear1341015445_UNTIL @ a
    @ ^ [Xs: stream @ a] :
        ~ ( p @ Xs )
    @ ( linear1386806755on_alw @ a @ p )
    @ omega ) ).

% "0.prems"
thf(fact_1_less__sfirstD,axiom,
    ! [A: $tType,N: nat,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ord_less @ extended_enat @ ( extended_enat2 @ N ) @ ( coindu76177514sfirst @ A @ P @ Omega ) )
     => ~ ( P @ ( sdrop @ A @ N @ Omega ) ) ) ).

% less_sfirstD
thf(fact_2_not__gr__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type @ A ) )
     => ! [N: A] :
          ( ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ N ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% not_gr_zero
thf(fact_3_enat_Oinject,axiom,
    ! [Nat: nat,Nat2: nat] :
      ( ( ( extended_enat2 @ Nat )
        = ( extended_enat2 @ Nat2 ) )
      = ( Nat = Nat2 ) ) ).

% enat.inject
thf(fact_4_sdrop_Osimps_I1_J,axiom,
    ! [A: $tType,S2: stream @ A] :
      ( ( sdrop @ A @ ( zero_zero @ nat ) @ S2 )
      = S2 ) ).

% sdrop.simps(1)
thf(fact_5_chain__incr,axiom,
    ! [A: $tType,Y: A > extended_enat,K: nat] :
      ( ! [I: A] :
        ? [J: A] : ( ord_less @ extended_enat @ ( Y @ I ) @ ( Y @ J ) )
     => ? [J2: A] : ( ord_less @ extended_enat @ ( extended_enat2 @ K ) @ ( Y @ J2 ) ) ) ).

% chain_incr
thf(fact_6_enat__iless,axiom,
    ! [N: extended_enat,M: nat] :
      ( ( ord_less @ extended_enat @ N @ ( extended_enat2 @ M ) )
     => ? [K2: nat] :
          ( N
          = ( extended_enat2 @ K2 ) ) ) ).

% enat_iless
thf(fact_7_less__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type @ A ) )
     => ~ ( ord_less @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% less_numeral_extra(3)
thf(fact_8_gr__zeroI,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type @ A ) )
     => ! [N: A] :
          ( ( N
           != ( zero_zero @ A ) )
         => ( ord_less @ A @ ( zero_zero @ A ) @ N ) ) ) ).

% gr_zeroI
thf(fact_9_not__less__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type @ A ) )
     => ! [N: A] :
          ~ ( ord_less @ A @ N @ ( zero_zero @ A ) ) ) ).

% not_less_zero
thf(fact_10_gr__implies__not__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type @ A ) )
     => ! [M: A,N: A] :
          ( ( ord_less @ A @ M @ N )
         => ( N
           != ( zero_zero @ A ) ) ) ) ).

% gr_implies_not_zero
thf(fact_11_zero__less__iff__neq__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type @ A ) )
     => ! [N: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ N )
          = ( N
           != ( zero_zero @ A ) ) ) ) ).

% zero_less_iff_neq_zero
thf(fact_12_fun__cong__unused__0,axiom,
    ! [A: $tType,B: $tType,C: $tType] :
      ( ( zero @ B @ ( type @ B ) )
     => ! [F: ( A > B ) > C,G: C] :
          ( ( F
            = ( ^ [X: A > B] : G ) )
         => ( ( F
              @ ^ [X: A] : ( zero_zero @ B ) )
            = G ) ) ) ).

% fun_cong_unused_0
thf(fact_13_i0__less,axiom,
    ! [N: extended_enat] :
      ( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N )
      = ( N
       != ( zero_zero @ extended_enat ) ) ) ).

% i0_less
thf(fact_14_sfirst__0,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( P @ Omega )
     => ( ( coindu76177514sfirst @ A @ P @ Omega )
        = ( zero_zero @ extended_enat ) ) ) ).

% sfirst_0
thf(fact_15_enat__ord__simps_I2_J,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ extended_enat @ ( extended_enat2 @ M ) @ ( extended_enat2 @ N ) )
      = ( ord_less @ nat @ M @ N ) ) ).

% enat_ord_simps(2)
thf(fact_16_not__iless0,axiom,
    ! [N: extended_enat] :
      ~ ( ord_less @ extended_enat @ N @ ( zero_zero @ extended_enat ) ) ).

% not_iless0
thf(fact_17_zero__enat__def,axiom,
    ( ( zero_zero @ extended_enat )
    = ( extended_enat2 @ ( zero_zero @ nat ) ) ) ).

% zero_enat_def
thf(fact_18_enat__0__iff_I1_J,axiom,
    ! [X2: nat] :
      ( ( ( extended_enat2 @ X2 )
        = ( zero_zero @ extended_enat ) )
      = ( X2
        = ( zero_zero @ nat ) ) ) ).

% enat_0_iff(1)
thf(fact_19_enat__0__iff_I2_J,axiom,
    ! [X2: nat] :
      ( ( ( zero_zero @ extended_enat )
        = ( extended_enat2 @ X2 ) )
      = ( X2
        = ( zero_zero @ nat ) ) ) ).

% enat_0_iff(2)
thf(fact_20_less__enatE,axiom,
    ! [N: extended_enat,M: nat] :
      ( ( ord_less @ extended_enat @ N @ ( extended_enat2 @ M ) )
     => ~ ! [K2: nat] :
            ( ( N
              = ( extended_enat2 @ K2 ) )
           => ~ ( ord_less @ nat @ K2 @ M ) ) ) ).

% less_enatE
thf(fact_21_sfirst__eq__0,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ( coindu76177514sfirst @ A @ P @ Omega )
        = ( zero_zero @ extended_enat ) )
      = ( P @ Omega ) ) ).

% sfirst_eq_0
thf(fact_22_zero__reorient,axiom,
    ! [A: $tType] :
      ( ( zero @ A @ ( type @ A ) )
     => ! [X2: A] :
          ( ( ( zero_zero @ A )
            = X2 )
          = ( X2
            = ( zero_zero @ A ) ) ) ) ).

% zero_reorient
thf(fact_23_enat__less__induct,axiom,
    ! [P: extended_enat > $o,N: extended_enat] :
      ( ! [N2: extended_enat] :
          ( ! [M2: extended_enat] :
              ( ( ord_less @ extended_enat @ M2 @ N2 )
             => ( P @ M2 ) )
         => ( P @ N2 ) )
     => ( P @ N ) ) ).

% enat_less_induct
thf(fact_24_enat_Osize_I1_J,axiom,
    ! [Nat: nat] :
      ( ( extended_size_enat @ ( extended_enat2 @ Nat ) )
      = ( zero_zero @ nat ) ) ).

% enat.size(1)
thf(fact_25_until__false,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( linear1341015445_UNTIL @ A @ Phi
        @ ^ [Xs: stream @ A] : $false )
      = ( linear1386806755on_alw @ A @ Phi ) ) ).

% until_false
thf(fact_26_alw__alw,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A @ ( linear1386806755on_alw @ A @ Phi ) )
      = ( linear1386806755on_alw @ A @ Phi ) ) ).

% alw_alw
thf(fact_27_neq0__conv,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% neq0_conv
thf(fact_28_alw__iff__sdrop,axiom,
    ! [A: $tType] :
      ( ( linear1386806755on_alw @ A )
      = ( ^ [P2: ( stream @ A ) > $o,Omega2: stream @ A] :
          ! [M3: nat] : ( P2 @ ( sdrop @ A @ M3 @ Omega2 ) ) ) ) ).

% alw_iff_sdrop
thf(fact_29_alw__sdrop,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,N: nat] :
      ( ( linear1386806755on_alw @ A @ Phi @ Xs2 )
     => ( linear1386806755on_alw @ A @ Phi @ ( sdrop @ A @ N @ Xs2 ) ) ) ).

% alw_sdrop
thf(fact_30_enat_Osize_I3_J,axiom,
    ! [Nat: nat] :
      ( ( size_size @ extended_enat @ ( extended_enat2 @ Nat ) )
      = ( zero_zero @ nat ) ) ).

% enat.size(3)
thf(fact_31_enat_Osimps_I6_J,axiom,
    ! [T: $tType,F1: nat > T,F2: T,Nat: nat] :
      ( ( extended_rec_enat @ T @ F1 @ F2 @ ( extended_enat2 @ Nat ) )
      = ( F1 @ Nat ) ) ).

% enat.simps(6)
thf(fact_32_alw__False,axiom,
    ! [A: $tType,Omega: stream @ A] :
      ~ ( linear1386806755on_alw @ A
        @ ^ [X: stream @ A] : $false
        @ Omega ) ).

% alw_False
thf(fact_33_alw__aand,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ( ( Phi @ Xs )
            & ( Psi @ Xs ) ) )
      = ( ^ [Xs: stream @ A] :
            ( ( linear1386806755on_alw @ A @ Phi @ Xs )
            & ( linear1386806755on_alw @ A @ Psi @ Xs ) ) ) ) ).

% alw_aand
thf(fact_34_alw__mp,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A @ Phi @ Xs2 )
     => ( ( linear1386806755on_alw @ A
          @ ^ [Xs: stream @ A] :
              ( ( Phi @ Xs )
             => ( Psi @ Xs ) )
          @ Xs2 )
       => ( linear1386806755on_alw @ A @ Psi @ Xs2 ) ) ) ).

% alw_mp
thf(fact_35_nat__neq__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( M != N )
      = ( ( ord_less @ nat @ M @ N )
        | ( ord_less @ nat @ N @ M ) ) ) ).

% nat_neq_iff
thf(fact_36_less__not__refl,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_not_refl
thf(fact_37_less__not__refl2,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ N @ M )
     => ( M != N ) ) ).

% less_not_refl2
thf(fact_38_less__not__refl3,axiom,
    ! [S2: nat,T2: nat] :
      ( ( ord_less @ nat @ S2 @ T2 )
     => ( S2 != T2 ) ) ).

% less_not_refl3
thf(fact_39_measure__induct,axiom,
    ! [A: $tType,F: A > nat,P: A > $o,A2: A] :
      ( ! [X3: A] :
          ( ! [Y2: A] :
              ( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
             => ( P @ Y2 ) )
         => ( P @ X3 ) )
     => ( P @ A2 ) ) ).

% measure_induct
thf(fact_40_less__irrefl__nat,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_irrefl_nat
thf(fact_41_nat__less__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ! [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
             => ( P @ M2 ) )
         => ( P @ N2 ) )
     => ( P @ N ) ) ).

% nat_less_induct
thf(fact_42_infinite__descent,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ~ ( P @ N2 )
         => ? [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
              & ~ ( P @ M2 ) ) )
     => ( P @ N ) ) ).

% infinite_descent
thf(fact_43_linorder__neqE__nat,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( X2 != Y3 )
     => ( ~ ( ord_less @ nat @ X2 @ Y3 )
       => ( ord_less @ nat @ Y3 @ X2 ) ) ) ).

% linorder_neqE_nat
thf(fact_44_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_45_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X: A] : ( member @ A @ X @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_46_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X3: A] :
          ( ( P @ X3 )
          = ( Q @ X3 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_47_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X3: A] :
          ( ( F @ X3 )
          = ( G @ X3 ) )
     => ( F = G ) ) ).

% ext
thf(fact_48_measure__induct__rule,axiom,
    ! [A: $tType,F: A > nat,P: A > $o,A2: A] :
      ( ! [X3: A] :
          ( ! [Y2: A] :
              ( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
             => ( P @ Y2 ) )
         => ( P @ X3 ) )
     => ( P @ A2 ) ) ).

% measure_induct_rule
thf(fact_49_infinite__descent__measure,axiom,
    ! [A: $tType,P: A > $o,V: A > nat,X2: A] :
      ( ! [X3: A] :
          ( ~ ( P @ X3 )
         => ? [Y2: A] :
              ( ( ord_less @ nat @ ( V @ Y2 ) @ ( V @ X3 ) )
              & ~ ( P @ Y2 ) ) )
     => ( P @ X2 ) ) ).

% infinite_descent_measure
thf(fact_50_size__enat__overloaded__def,axiom,
    ( ( size_size @ extended_enat )
    = ( extended_rec_enat @ nat
      @ ^ [X: nat] : ( zero_zero @ nat )
      @ ( zero_zero @ nat ) ) ) ).

% size_enat_overloaded_def
thf(fact_51_size__enat__def,axiom,
    ( extended_size_enat
    = ( extended_rec_enat @ nat
      @ ^ [X: nat] : ( zero_zero @ nat )
      @ ( zero_zero @ nat ) ) ) ).

% size_enat_def
thf(fact_52_gr0I,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% gr0I
thf(fact_53_not__gr0,axiom,
    ! [N: nat] :
      ( ( ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% not_gr0
thf(fact_54_not__less0,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% not_less0
thf(fact_55_less__zeroE,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_zeroE
thf(fact_56_gr__implies__not0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( N
       != ( zero_zero @ nat ) ) ) ).

% gr_implies_not0
thf(fact_57_infinite__descent0,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N2: nat] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
           => ( ~ ( P @ N2 )
             => ? [M2: nat] :
                  ( ( ord_less @ nat @ M2 @ N2 )
                  & ~ ( P @ M2 ) ) ) )
       => ( P @ N ) ) ) ).

% infinite_descent0
thf(fact_58_less__nat__zero__code,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_nat_zero_code
thf(fact_59_infinite__descent0__measure,axiom,
    ! [A: $tType,V: A > nat,P: A > $o,X2: A] :
      ( ! [X3: A] :
          ( ( ( V @ X3 )
            = ( zero_zero @ nat ) )
         => ( P @ X3 ) )
     => ( ! [X3: A] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( V @ X3 ) )
           => ( ~ ( P @ X3 )
             => ? [Y2: A] :
                  ( ( ord_less @ nat @ ( V @ Y2 ) @ ( V @ X3 ) )
                  & ~ ( P @ Y2 ) ) ) )
       => ( P @ X2 ) ) ) ).

% infinite_descent0_measure
thf(fact_60_all__imp__alw,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
      ( ! [X1: stream @ A] : ( Phi @ X1 )
     => ( linear1386806755on_alw @ A @ Phi @ Xs2 ) ) ).

% all_imp_alw
thf(fact_61_alw__mono,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A @ Phi @ Xs2 )
     => ( ! [Xs3: stream @ A] :
            ( ( Phi @ Xs3 )
           => ( Psi @ Xs3 ) )
       => ( linear1386806755on_alw @ A @ Psi @ Xs2 ) ) ) ).

% alw_mono
thf(fact_62_alw__cong,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A,Q1: ( stream @ A ) > $o,Q2: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A @ P @ Omega )
     => ( ! [Omega3: stream @ A] :
            ( ( P @ Omega3 )
           => ( ( Q1 @ Omega3 )
              = ( Q2 @ Omega3 ) ) )
       => ( ( linear1386806755on_alw @ A @ Q1 @ Omega )
          = ( linear1386806755on_alw @ A @ Q2 @ Omega ) ) ) ) ).

% alw_cong
thf(fact_63_alw__alwD,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( linear1386806755on_alw @ A @ P @ Omega )
     => ( linear1386806755on_alw @ A @ ( linear1386806755on_alw @ A @ P ) @ Omega ) ) ).

% alw_alwD
thf(fact_64_alwD,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,X2: stream @ A] :
      ( ( linear1386806755on_alw @ A @ P @ X2 )
     => ( P @ X2 ) ) ).

% alwD
thf(fact_65_until__monoR,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Psi_1: ( stream @ A ) > $o,Xs2: stream @ A,Psi_2: ( stream @ A ) > $o] :
      ( ( linear1341015445_UNTIL @ A @ Phi @ Psi_1 @ Xs2 )
     => ( ! [Xs3: stream @ A] :
            ( ( Psi_1 @ Xs3 )
           => ( Psi_2 @ Xs3 ) )
       => ( linear1341015445_UNTIL @ A @ Phi @ Psi_2 @ Xs2 ) ) ) ).

% until_monoR
thf(fact_66_until__monoL,axiom,
    ! [A: $tType,Phi_1: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o,Xs2: stream @ A,Phi_2: ( stream @ A ) > $o] :
      ( ( linear1341015445_UNTIL @ A @ Phi_1 @ Psi @ Xs2 )
     => ( ! [Xs3: stream @ A] :
            ( ( Phi_1 @ Xs3 )
           => ( Phi_2 @ Xs3 ) )
       => ( linear1341015445_UNTIL @ A @ Phi_2 @ Psi @ Xs2 ) ) ) ).

% until_monoL
thf(fact_67_until__mono,axiom,
    ! [A: $tType,Phi_1: ( stream @ A ) > $o,Psi_1: ( stream @ A ) > $o,Xs2: stream @ A,Phi_2: ( stream @ A ) > $o,Psi_2: ( stream @ A ) > $o] :
      ( ( linear1341015445_UNTIL @ A @ Phi_1 @ Psi_1 @ Xs2 )
     => ( ! [Xs3: stream @ A] :
            ( ( Phi_1 @ Xs3 )
           => ( Phi_2 @ Xs3 ) )
       => ( ! [Xs3: stream @ A] :
              ( ( Psi_1 @ Xs3 )
             => ( Psi_2 @ Xs3 ) )
         => ( linear1341015445_UNTIL @ A @ Phi_2 @ Psi_2 @ Xs2 ) ) ) ) ).

% until_mono
thf(fact_68_UNTIL_Obase,axiom,
    ! [A: $tType,Psi: ( stream @ A ) > $o,Xs2: stream @ A,Phi: ( stream @ A ) > $o] :
      ( ( Psi @ Xs2 )
     => ( linear1341015445_UNTIL @ A @ Phi @ Psi @ Xs2 ) ) ).

% UNTIL.base
thf(fact_69_of__nat__0__less__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type @ A ) )
     => ! [N: nat] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).

% of_nat_0_less_iff
thf(fact_70_less__enat__def,axiom,
    ( ( ord_less @ extended_enat )
    = ( ^ [M3: extended_enat,N3: extended_enat] :
          ( extended_case_enat @ $o
          @ ^ [M1: nat] : ( extended_case_enat @ $o @ ( ord_less @ nat @ M1 ) @ $true @ N3 )
          @ $false
          @ M3 ) ) ) ).

% less_enat_def
thf(fact_71_case__enat__def,axiom,
    ! [T: $tType] :
      ( ( extended_case_enat @ T )
      = ( extended_rec_enat @ T ) ) ).

% case_enat_def
thf(fact_72_enat_Osimps_I4_J,axiom,
    ! [T: $tType,F1: nat > T,F2: T,Nat: nat] :
      ( ( extended_case_enat @ T @ F1 @ F2 @ ( extended_enat2 @ Nat ) )
      = ( F1 @ Nat ) ) ).

% enat.simps(4)
thf(fact_73_scount__eq__0__iff,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ( coindu1365464361scount @ A @ P @ Omega )
        = ( zero_zero @ extended_enat ) )
      = ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ~ ( P @ Xs )
        @ Omega ) ) ).

% scount_eq_0_iff
thf(fact_74_scount__eq__0I,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ~ ( P @ Xs )
        @ Omega )
     => ( ( coindu1365464361scount @ A @ P @ Omega )
        = ( zero_zero @ extended_enat ) ) ) ).

% scount_eq_0I
thf(fact_75_scount__eq__0D,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ( coindu1365464361scount @ A @ P @ Omega )
        = ( zero_zero @ extended_enat ) )
     => ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ~ ( P @ Xs )
        @ Omega ) ) ).

% scount_eq_0D
thf(fact_76_enat_Osize_I4_J,axiom,
    ( ( size_size @ extended_enat @ ( extend1396239628finity @ extended_enat ) )
    = ( zero_zero @ nat ) ) ).

% enat.size(4)
thf(fact_77_of__nat__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type @ A ) )
     => ! [M: nat,N: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( M = N ) ) ) ).

% of_nat_eq_iff
thf(fact_78_not__infinity__eq,axiom,
    ! [X2: extended_enat] :
      ( ( X2
       != ( extend1396239628finity @ extended_enat ) )
      = ( ? [I2: nat] :
            ( X2
            = ( extended_enat2 @ I2 ) ) ) ) ).

% not_infinity_eq
thf(fact_79_not__enat__eq,axiom,
    ! [X2: extended_enat] :
      ( ( ! [Y4: nat] :
            ( X2
           != ( extended_enat2 @ Y4 ) ) )
      = ( X2
        = ( extend1396239628finity @ extended_enat ) ) ) ).

% not_enat_eq
thf(fact_80_enat__ord__simps_I4_J,axiom,
    ! [Q3: extended_enat] :
      ( ( ord_less @ extended_enat @ Q3 @ ( extend1396239628finity @ extended_enat ) )
      = ( Q3
       != ( extend1396239628finity @ extended_enat ) ) ) ).

% enat_ord_simps(4)
thf(fact_81_enat__ord__simps_I6_J,axiom,
    ! [Q3: extended_enat] :
      ~ ( ord_less @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ Q3 ) ).

% enat_ord_simps(6)
thf(fact_82_enat_Osimps_I5_J,axiom,
    ! [T: $tType,F1: nat > T,F2: T] :
      ( ( extended_case_enat @ T @ F1 @ F2 @ ( extend1396239628finity @ extended_enat ) )
      = F2 ) ).

% enat.simps(5)
thf(fact_83_enat_Osimps_I7_J,axiom,
    ! [T: $tType,F1: nat > T,F2: T] :
      ( ( extended_rec_enat @ T @ F1 @ F2 @ ( extend1396239628finity @ extended_enat ) )
      = F2 ) ).

% enat.simps(7)
thf(fact_84_of__nat__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type @ A ) )
     => ! [M: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_eq_0_iff
thf(fact_85_of__nat__0__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A @ ( type @ A ) )
     => ! [N: nat] :
          ( ( ( zero_zero @ A )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( ( zero_zero @ nat )
            = N ) ) ) ).

% of_nat_0_eq_iff
thf(fact_86_of__nat__0,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type @ A ) )
     => ( ( semiring_1_of_nat @ A @ ( zero_zero @ nat ) )
        = ( zero_zero @ A ) ) ) ).

% of_nat_0
thf(fact_87_of__nat__less__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type @ A ) )
     => ! [M: nat,N: nat] :
          ( ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less @ nat @ M @ N ) ) ) ).

% of_nat_less_iff
thf(fact_88_case__enat__0,axiom,
    ! [A: $tType,F: nat > A,I3: A] :
      ( ( extended_case_enat @ A @ F @ I3 @ ( zero_zero @ extended_enat ) )
      = ( F @ ( zero_zero @ nat ) ) ) ).

% case_enat_0
thf(fact_89_enat_Osize_I2_J,axiom,
    ( ( extended_size_enat @ ( extend1396239628finity @ extended_enat ) )
    = ( zero_zero @ nat ) ) ).

% enat.size(2)
thf(fact_90_of__nat__eq__enat,axiom,
    ( ( semiring_1_of_nat @ extended_enat )
    = extended_enat2 ) ).

% of_nat_eq_enat
thf(fact_91_enat__ex__split,axiom,
    ( ( ^ [P3: extended_enat > $o] :
        ? [X4: extended_enat] : ( P3 @ X4 ) )
    = ( ^ [P2: extended_enat > $o] :
          ( ( P2 @ ( extend1396239628finity @ extended_enat ) )
          | ? [X: nat] : ( P2 @ ( extended_enat2 @ X ) ) ) ) ) ).

% enat_ex_split
thf(fact_92_enat_Oinducts,axiom,
    ! [P: extended_enat > $o,Enat: extended_enat] :
      ( ! [Nat3: nat] : ( P @ ( extended_enat2 @ Nat3 ) )
     => ( ( P @ ( extend1396239628finity @ extended_enat ) )
       => ( P @ Enat ) ) ) ).

% enat.inducts
thf(fact_93_enat_Oexhaust,axiom,
    ! [Y3: extended_enat] :
      ( ! [Nat3: nat] :
          ( Y3
         != ( extended_enat2 @ Nat3 ) )
     => ( Y3
        = ( extend1396239628finity @ extended_enat ) ) ) ).

% enat.exhaust
thf(fact_94_enat3__cases,axiom,
    ! [Y3: extended_enat,Ya: extended_enat,Yb: extended_enat] :
      ( ( ? [Nat3: nat] :
            ( Y3
            = ( extended_enat2 @ Nat3 ) )
       => ( ? [Nata: nat] :
              ( Ya
              = ( extended_enat2 @ Nata ) )
         => ! [Natb: nat] :
              ( Yb
             != ( extended_enat2 @ Natb ) ) ) )
     => ( ( ? [Nat3: nat] :
              ( Y3
              = ( extended_enat2 @ Nat3 ) )
         => ( ? [Nata: nat] :
                ( Ya
                = ( extended_enat2 @ Nata ) )
           => ( Yb
             != ( extend1396239628finity @ extended_enat ) ) ) )
       => ( ( ? [Nat3: nat] :
                ( Y3
                = ( extended_enat2 @ Nat3 ) )
           => ( ( Ya
                = ( extend1396239628finity @ extended_enat ) )
             => ! [Nata: nat] :
                  ( Yb
                 != ( extended_enat2 @ Nata ) ) ) )
         => ( ( ? [Nat3: nat] :
                  ( Y3
                  = ( extended_enat2 @ Nat3 ) )
             => ( ( Ya
                  = ( extend1396239628finity @ extended_enat ) )
               => ( Yb
                 != ( extend1396239628finity @ extended_enat ) ) ) )
           => ( ( ( Y3
                  = ( extend1396239628finity @ extended_enat ) )
               => ( ? [Nat3: nat] :
                      ( Ya
                      = ( extended_enat2 @ Nat3 ) )
                 => ! [Nata: nat] :
                      ( Yb
                     != ( extended_enat2 @ Nata ) ) ) )
             => ( ( ( Y3
                    = ( extend1396239628finity @ extended_enat ) )
                 => ( ? [Nat3: nat] :
                        ( Ya
                        = ( extended_enat2 @ Nat3 ) )
                   => ( Yb
                     != ( extend1396239628finity @ extended_enat ) ) ) )
               => ( ( ( Y3
                      = ( extend1396239628finity @ extended_enat ) )
                   => ( ( Ya
                        = ( extend1396239628finity @ extended_enat ) )
                     => ! [Nat3: nat] :
                          ( Yb
                         != ( extended_enat2 @ Nat3 ) ) ) )
                 => ~ ( ( Y3
                        = ( extend1396239628finity @ extended_enat ) )
                     => ( ( Ya
                          = ( extend1396239628finity @ extended_enat ) )
                       => ( Yb
                         != ( extend1396239628finity @ extended_enat ) ) ) ) ) ) ) ) ) ) ) ).

% enat3_cases
thf(fact_95_enat2__cases,axiom,
    ! [Y3: extended_enat,Ya: extended_enat] :
      ( ( ? [Nat3: nat] :
            ( Y3
            = ( extended_enat2 @ Nat3 ) )
       => ! [Nata: nat] :
            ( Ya
           != ( extended_enat2 @ Nata ) ) )
     => ( ( ? [Nat3: nat] :
              ( Y3
              = ( extended_enat2 @ Nat3 ) )
         => ( Ya
           != ( extend1396239628finity @ extended_enat ) ) )
       => ( ( ( Y3
              = ( extend1396239628finity @ extended_enat ) )
           => ! [Nat3: nat] :
                ( Ya
               != ( extended_enat2 @ Nat3 ) ) )
         => ~ ( ( Y3
                = ( extend1396239628finity @ extended_enat ) )
             => ( Ya
               != ( extend1396239628finity @ extended_enat ) ) ) ) ) ) ).

% enat2_cases
thf(fact_96_enat_Odistinct_I1_J,axiom,
    ! [Nat: nat] :
      ( ( extended_enat2 @ Nat )
     != ( extend1396239628finity @ extended_enat ) ) ).

% enat.distinct(1)
thf(fact_97_enat_Odistinct_I2_J,axiom,
    ! [Nat4: nat] :
      ( ( extend1396239628finity @ extended_enat )
     != ( extended_enat2 @ Nat4 ) ) ).

% enat.distinct(2)
thf(fact_98_infinity__ne__i0,axiom,
    ( ( extend1396239628finity @ extended_enat )
   != ( zero_zero @ extended_enat ) ) ).

% infinity_ne_i0
thf(fact_99_of__nat__less__0__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type @ A ) )
     => ! [M: nat] :
          ~ ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) ) ) ).

% of_nat_less_0_iff
thf(fact_100_of__nat__less__imp__less,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type @ A ) )
     => ! [M: nat,N: nat] :
          ( ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
         => ( ord_less @ nat @ M @ N ) ) ) ).

% of_nat_less_imp_less
thf(fact_101_less__imp__of__nat__less,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type @ A ) )
     => ! [M: nat,N: nat] :
          ( ( ord_less @ nat @ M @ N )
         => ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).

% less_imp_of_nat_less
thf(fact_102_infinity__ilessE,axiom,
    ! [M: nat] :
      ~ ( ord_less @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extended_enat2 @ M ) ) ).

% infinity_ilessE
thf(fact_103_less__infinityE,axiom,
    ! [N: extended_enat] :
      ( ( ord_less @ extended_enat @ N @ ( extend1396239628finity @ extended_enat ) )
     => ~ ! [K2: nat] :
            ( N
           != ( extended_enat2 @ K2 ) ) ) ).

% less_infinityE
thf(fact_104_enat__ord__code_I4_J,axiom,
    ! [M: nat] : ( ord_less @ extended_enat @ ( extended_enat2 @ M ) @ ( extend1396239628finity @ extended_enat ) ) ).

% enat_ord_code(4)
thf(fact_105_zero__less__imp__eq__int,axiom,
    ! [K: int] :
      ( ( ord_less @ int @ ( zero_zero @ int ) @ K )
     => ? [N2: nat] :
          ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
          & ( K
            = ( semiring_1_of_nat @ int @ N2 ) ) ) ) ).

% zero_less_imp_eq_int
thf(fact_106_reals__Archimedean2,axiom,
    ! [A: $tType] :
      ( ( archim1804426504_field @ A @ ( type @ A ) )
     => ! [X2: A] :
        ? [N2: nat] : ( ord_less @ A @ X2 @ ( semiring_1_of_nat @ A @ N2 ) ) ) ).

% reals_Archimedean2
thf(fact_107_times__enat__simps_I3_J,axiom,
    ! [N: nat] :
      ( ( ( N
          = ( zero_zero @ nat ) )
       => ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extended_enat2 @ N ) )
          = ( zero_zero @ extended_enat ) ) )
      & ( ( N
         != ( zero_zero @ nat ) )
       => ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extended_enat2 @ N ) )
          = ( extend1396239628finity @ extended_enat ) ) ) ) ).

% times_enat_simps(3)
thf(fact_108_times__enat__simps_I4_J,axiom,
    ! [M: nat] :
      ( ( ( M
          = ( zero_zero @ nat ) )
       => ( ( times_times @ extended_enat @ ( extended_enat2 @ M ) @ ( extend1396239628finity @ extended_enat ) )
          = ( zero_zero @ extended_enat ) ) )
      & ( ( M
         != ( zero_zero @ nat ) )
       => ( ( times_times @ extended_enat @ ( extended_enat2 @ M ) @ ( extend1396239628finity @ extended_enat ) )
          = ( extend1396239628finity @ extended_enat ) ) ) ) ).

% times_enat_simps(4)
thf(fact_109_the__enat__0,axiom,
    ( ( extended_the_enat @ ( zero_zero @ extended_enat ) )
    = ( zero_zero @ nat ) ) ).

% the_enat_0
thf(fact_110_scount__finite,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( linear505997466_on_ev @ A
        @ ( linear1386806755on_alw @ A
          @ ^ [Xs: stream @ A] :
              ~ ( P @ Xs ) )
        @ Omega )
     => ( ord_less @ extended_enat @ ( coindu1365464361scount @ A @ P @ Omega ) @ ( extend1396239628finity @ extended_enat ) ) ) ).

% scount_finite
thf(fact_111_ev__ev,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A @ ( linear505997466_on_ev @ A @ Phi ) )
      = ( linear505997466_on_ev @ A @ Phi ) ) ).

% ev_ev
thf(fact_112_of__nat__mult,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type @ A ) )
     => ! [M: nat,N: nat] :
          ( ( semiring_1_of_nat @ A @ ( times_times @ nat @ M @ N ) )
          = ( times_times @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).

% of_nat_mult
thf(fact_113_times__enat__simps_I2_J,axiom,
    ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extend1396239628finity @ extended_enat ) )
    = ( extend1396239628finity @ extended_enat ) ) ).

% times_enat_simps(2)
thf(fact_114_not__alw__not,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( ^ [Xs: stream @ A] :
            ~ ( linear1386806755on_alw @ A
              @ ^ [Xt: stream @ A] :
                  ~ ( Phi @ Xt )
              @ Xs ) )
      = ( linear505997466_on_ev @ A @ Phi ) ) ).

% not_alw_not
thf(fact_115_not__ev__not,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( ^ [Xs: stream @ A] :
            ~ ( linear505997466_on_ev @ A
              @ ^ [Xt: stream @ A] :
                  ~ ( Phi @ Xt )
              @ Xs ) )
      = ( linear1386806755on_alw @ A @ Phi ) ) ).

% not_ev_not
thf(fact_116_int__int__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ( semiring_1_of_nat @ int @ M )
        = ( semiring_1_of_nat @ int @ N ) )
      = ( M = N ) ) ).

% int_int_eq
thf(fact_117_ab__semigroup__mult__class_Omult__ac_I1_J,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C2 )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).

% ab_semigroup_mult_class.mult_ac(1)
thf(fact_118_mult_Oassoc,axiom,
    ! [A: $tType] :
      ( ( semigroup_mult @ A @ ( type @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C2 )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).

% mult.assoc
thf(fact_119_mult_Ocommute,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type @ A ) )
     => ( ( times_times @ A )
        = ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).

% mult.commute
thf(fact_120_mult_Oleft__commute,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type @ A ) )
     => ! [B2: A,A2: A,C2: A] :
          ( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C2 ) )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).

% mult.left_commute
thf(fact_121_ev__or,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A
        @ ^ [Xs: stream @ A] :
            ( ( Phi @ Xs )
            | ( Psi @ Xs ) ) )
      = ( ^ [Xs: stream @ A] :
            ( ( linear505997466_on_ev @ A @ Phi @ Xs )
            | ( linear505997466_on_ev @ A @ Psi @ Xs ) ) ) ) ).

% ev_or
thf(fact_122_ev_Obase,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
      ( ( Phi @ Xs2 )
     => ( linear505997466_on_ev @ A @ Phi @ Xs2 ) ) ).

% ev.base
thf(fact_123_ev__mono,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
     => ( ! [Xs3: stream @ A] :
            ( ( Phi @ Xs3 )
           => ( Psi @ Xs3 ) )
       => ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).

% ev_mono
thf(fact_124_ev__False,axiom,
    ! [A: $tType,Omega: stream @ A] :
      ~ ( linear505997466_on_ev @ A
        @ ^ [X: stream @ A] : $false
        @ Omega ) ).

% ev_False
thf(fact_125_less__int__code_I1_J,axiom,
    ~ ( ord_less @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ) ).

% less_int_code(1)
thf(fact_126_ev__alw__imp__alw__ev,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
      ( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs2 )
     => ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Phi ) @ Xs2 ) ) ).

% ev_alw_imp_alw_ev
thf(fact_127_ev__cong,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A,Q1: ( stream @ A ) > $o,Q2: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A @ P @ Omega )
     => ( ! [Omega3: stream @ A] :
            ( ( P @ Omega3 )
           => ( ( Q1 @ Omega3 )
              = ( Q2 @ Omega3 ) ) )
       => ( ( linear505997466_on_ev @ A @ Q1 @ Omega )
          = ( linear505997466_on_ev @ A @ Q2 @ Omega ) ) ) ) ).

% ev_cong
thf(fact_128_ev__iff__sdrop,axiom,
    ! [A: $tType] :
      ( ( linear505997466_on_ev @ A )
      = ( ^ [P2: ( stream @ A ) > $o,Omega2: stream @ A] :
          ? [M3: nat] : ( P2 @ ( sdrop @ A @ M3 @ Omega2 ) ) ) ) ).

% ev_iff_sdrop
thf(fact_129_mult__of__nat__commute,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A @ ( type @ A ) )
     => ! [X2: nat,Y3: A] :
          ( ( times_times @ A @ ( semiring_1_of_nat @ A @ X2 ) @ Y3 )
          = ( times_times @ A @ Y3 @ ( semiring_1_of_nat @ A @ X2 ) ) ) ) ).

% mult_of_nat_commute
thf(fact_130_imult__is__0,axiom,
    ! [M: extended_enat,N: extended_enat] :
      ( ( ( times_times @ extended_enat @ M @ N )
        = ( zero_zero @ extended_enat ) )
      = ( ( M
          = ( zero_zero @ extended_enat ) )
        | ( N
          = ( zero_zero @ extended_enat ) ) ) ) ).

% imult_is_0
thf(fact_131_alw__ev__imp__ev__alw,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Omega )
     => ( linear505997466_on_ev @ A
        @ ^ [Xs: stream @ A] :
            ( ( P @ Xs )
            & ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Xs ) )
        @ Omega ) ) ).

% alw_ev_imp_ev_alw
thf(fact_132_ev__alw__alw__impl,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs2 )
     => ( ( linear1386806755on_alw @ A
          @ ^ [Xs: stream @ A] :
              ( ( linear1386806755on_alw @ A @ Phi @ Xs )
             => ( linear505997466_on_ev @ A @ Psi @ Xs ) )
          @ Xs2 )
       => ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).

% ev_alw_alw_impl
thf(fact_133_alw__impl__ev__alw,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o,Xs2: stream @ A] :
      ( ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ( ( Phi @ Xs )
           => ( linear505997466_on_ev @ A @ Psi @ Xs ) )
        @ Xs2 )
     => ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ( ( linear505997466_on_ev @ A @ Phi @ Xs )
           => ( linear505997466_on_ev @ A @ Psi @ Xs ) )
        @ Xs2 ) ) ).

% alw_impl_ev_alw
thf(fact_134_alw__alw__impl__ev,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o] :
      ( ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ( ( linear1386806755on_alw @ A @ Phi @ Xs )
           => ( linear505997466_on_ev @ A @ Psi @ Xs ) ) )
      = ( ^ [Xs: stream @ A] :
            ( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs )
           => ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Psi ) @ Xs ) ) ) ) ).

% alw_alw_impl_ev
thf(fact_135_ev__alw__impl__ev,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
     => ( ( linear1386806755on_alw @ A
          @ ^ [Xs: stream @ A] :
              ( ( Phi @ Xs )
             => ( linear505997466_on_ev @ A @ Psi @ Xs ) )
          @ Xs2 )
       => ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).

% ev_alw_impl_ev
thf(fact_136_not__alw__iff,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ~ ( linear1386806755on_alw @ A @ P @ Omega ) )
      = ( linear505997466_on_ev @ A
        @ ^ [Xs: stream @ A] :
            ~ ( P @ Xs )
        @ Omega ) ) ).

% not_alw_iff
thf(fact_137_ev__alw__impl,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
     => ( ( linear1386806755on_alw @ A
          @ ^ [Xs: stream @ A] :
              ( ( Phi @ Xs )
             => ( Psi @ Xs ) )
          @ Xs2 )
       => ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).

% ev_alw_impl
thf(fact_138_ev__alw__aand,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
      ( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs2 )
     => ( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Psi ) @ Xs2 )
       => ( linear505997466_on_ev @ A
          @ ( linear1386806755on_alw @ A
            @ ^ [Xs: stream @ A] :
                ( ( Phi @ Xs )
                & ( Psi @ Xs ) ) )
          @ Xs2 ) ) ) ).

% ev_alw_aand
thf(fact_139_not__ev__iff,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ~ ( linear505997466_on_ev @ A @ P @ Omega ) )
      = ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ~ ( P @ Xs )
        @ Omega ) ) ).

% not_ev_iff
thf(fact_140_not__alw,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( ^ [Xs: stream @ A] :
            ~ ( linear1386806755on_alw @ A @ Phi @ Xs ) )
      = ( linear505997466_on_ev @ A
        @ ^ [Xs: stream @ A] :
            ~ ( Phi @ Xs ) ) ) ).

% not_alw
thf(fact_141_not__ev,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o] :
      ( ( ^ [Xs: stream @ A] :
            ~ ( linear505997466_on_ev @ A @ Phi @ Xs ) )
      = ( linear1386806755on_alw @ A
        @ ^ [Xs: stream @ A] :
            ~ ( Phi @ Xs ) ) ) ).

% not_ev
thf(fact_142_the__enat_Osimps,axiom,
    ! [N: nat] :
      ( ( extended_the_enat @ ( extended_enat2 @ N ) )
      = N ) ).

% the_enat.simps
thf(fact_143_alw__ev__sdrop,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,M: nat,Xs2: stream @ A] :
      ( ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Phi ) @ ( sdrop @ A @ M @ Xs2 ) )
     => ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Phi ) @ Xs2 ) ) ).

% alw_ev_sdrop
thf(fact_144_ex__less__of__nat__mult,axiom,
    ! [A: $tType] :
      ( ( archim1804426504_field @ A @ ( type @ A ) )
     => ! [X2: A,Y3: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ X2 )
         => ? [N2: nat] : ( ord_less @ A @ Y3 @ ( times_times @ A @ ( semiring_1_of_nat @ A @ N2 ) @ X2 ) ) ) ) ).

% ex_less_of_nat_mult
thf(fact_145_imult__is__infinity,axiom,
    ! [A2: extended_enat,B2: extended_enat] :
      ( ( ( times_times @ extended_enat @ A2 @ B2 )
        = ( extend1396239628finity @ extended_enat ) )
      = ( ( ( A2
            = ( extend1396239628finity @ extended_enat ) )
          & ( B2
           != ( zero_zero @ extended_enat ) ) )
        | ( ( B2
            = ( extend1396239628finity @ extended_enat ) )
          & ( A2
           != ( zero_zero @ extended_enat ) ) ) ) ) ).

% imult_is_infinity
thf(fact_146_enat__0__less__mult__iff,axiom,
    ! [M: extended_enat,N: extended_enat] :
      ( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ ( times_times @ extended_enat @ M @ N ) )
      = ( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ M )
        & ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N ) ) ) ).

% enat_0_less_mult_iff
thf(fact_147_scount__infinite__iff,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ( coindu1365464361scount @ A @ P @ Omega )
        = ( extend1396239628finity @ extended_enat ) )
      = ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Omega ) ) ).

% scount_infinite_iff
thf(fact_148_scount__infinite,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Omega )
     => ( ( coindu1365464361scount @ A @ P @ Omega )
        = ( extend1396239628finity @ extended_enat ) ) ) ).

% scount_infinite
thf(fact_149_sfirst__finite,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( ord_less @ extended_enat @ ( coindu76177514sfirst @ A @ P @ Omega ) @ ( extend1396239628finity @ extended_enat ) )
      = ( linear505997466_on_ev @ A @ P @ Omega ) ) ).

% sfirst_finite
thf(fact_150_imult__infinity__right,axiom,
    ! [N: extended_enat] :
      ( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N )
     => ( ( times_times @ extended_enat @ N @ ( extend1396239628finity @ extended_enat ) )
        = ( extend1396239628finity @ extended_enat ) ) ) ).

% imult_infinity_right
thf(fact_151_imult__infinity,axiom,
    ! [N: extended_enat] :
      ( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N )
     => ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ N )
        = ( extend1396239628finity @ extended_enat ) ) ) ).

% imult_infinity
thf(fact_152_enat__the__enat,axiom,
    ! [N: extended_enat] :
      ( ( N
       != ( extend1396239628finity @ extended_enat ) )
     => ( ( extended_enat2 @ ( extended_the_enat @ N ) )
        = N ) ) ).

% enat_the_enat
thf(fact_153_mult__cancel__right,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type @ A ) )
     => ! [A2: A,C2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ C2 )
            = ( times_times @ A @ B2 @ C2 ) )
          = ( ( C2
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% mult_cancel_right
thf(fact_154_mult__cancel__left,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( ( times_times @ A @ C2 @ A2 )
            = ( times_times @ A @ C2 @ B2 ) )
          = ( ( C2
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% mult_cancel_left
thf(fact_155_mult__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
          = ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% mult_eq_0_iff
thf(fact_156_mult__zero__right,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% mult_zero_right
thf(fact_157_mult__zero__left,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% mult_zero_left
thf(fact_158_mult__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ K )
        = ( times_times @ nat @ N @ K ) )
      = ( ( M = N )
        | ( K
          = ( zero_zero @ nat ) ) ) ) ).

% mult_cancel2
thf(fact_159_mult__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ K @ M )
        = ( times_times @ nat @ K @ N ) )
      = ( ( M = N )
        | ( K
          = ( zero_zero @ nat ) ) ) ) ).

% mult_cancel1
thf(fact_160_mult__0__right,axiom,
    ! [M: nat] :
      ( ( times_times @ nat @ M @ ( zero_zero @ nat ) )
      = ( zero_zero @ nat ) ) ).

% mult_0_right
thf(fact_161_mult__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ N )
        = ( zero_zero @ nat ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        | ( N
          = ( zero_zero @ nat ) ) ) ) ).

% mult_is_0
thf(fact_162_mult__less__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
        & ( ord_less @ nat @ M @ N ) ) ) ).

% mult_less_cancel2
thf(fact_163_nat__0__less__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( times_times @ nat @ M @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
        & ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).

% nat_0_less_mult_iff
thf(fact_164_times__enat__simps_I1_J,axiom,
    ! [M: nat,N: nat] :
      ( ( times_times @ extended_enat @ ( extended_enat2 @ M ) @ ( extended_enat2 @ N ) )
      = ( extended_enat2 @ ( times_times @ nat @ M @ N ) ) ) ).

% times_enat_simps(1)
thf(fact_165_times__int__code_I1_J,axiom,
    ! [K: int] :
      ( ( times_times @ int @ K @ ( zero_zero @ int ) )
      = ( zero_zero @ int ) ) ).

% times_int_code(1)
thf(fact_166_times__int__code_I2_J,axiom,
    ! [L: int] :
      ( ( times_times @ int @ ( zero_zero @ int ) @ L )
      = ( zero_zero @ int ) ) ).

% times_int_code(2)
thf(fact_167_mult__0,axiom,
    ! [N: nat] :
      ( ( times_times @ nat @ ( zero_zero @ nat ) @ N )
      = ( zero_zero @ nat ) ) ).

% mult_0
thf(fact_168_mult__less__mono1,axiom,
    ! [I3: nat,J3: nat,K: nat] :
      ( ( ord_less @ nat @ I3 @ J3 )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ nat @ ( times_times @ nat @ I3 @ K ) @ ( times_times @ nat @ J3 @ K ) ) ) ) ).

% mult_less_mono1
thf(fact_169_mult__less__mono2,axiom,
    ! [I3: nat,J3: nat,K: nat] :
      ( ( ord_less @ nat @ I3 @ J3 )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ nat @ ( times_times @ nat @ K @ I3 ) @ ( times_times @ nat @ K @ J3 ) ) ) ) ).

% mult_less_mono2
thf(fact_170_zmult__zless__mono2,axiom,
    ! [I3: int,J3: int,K: int] :
      ( ( ord_less @ int @ I3 @ J3 )
     => ( ( ord_less @ int @ ( zero_zero @ int ) @ K )
       => ( ord_less @ int @ ( times_times @ int @ K @ I3 ) @ ( times_times @ int @ K @ J3 ) ) ) ) ).

% zmult_zless_mono2
thf(fact_171_linorder__neqE__linordered__idom,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A @ ( type @ A ) )
     => ! [X2: A,Y3: A] :
          ( ( X2 != Y3 )
         => ( ~ ( ord_less @ A @ X2 @ Y3 )
           => ( ord_less @ A @ Y3 @ X2 ) ) ) ) ).

% linorder_neqE_linordered_idom
thf(fact_172_zmult__zless__mono2__lemma,axiom,
    ! [I3: int,J3: int,K: nat] :
      ( ( ord_less @ int @ I3 @ J3 )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ int @ ( times_times @ int @ ( semiring_1_of_nat @ int @ K ) @ I3 ) @ ( times_times @ int @ ( semiring_1_of_nat @ int @ K ) @ J3 ) ) ) ) ).

% zmult_zless_mono2_lemma
thf(fact_173_times__enat__def,axiom,
    ( ( times_times @ extended_enat )
    = ( ^ [M3: extended_enat,N3: extended_enat] :
          ( extended_case_enat @ extended_enat
          @ ^ [O: nat] :
              ( extended_case_enat @ extended_enat
              @ ^ [P4: nat] : ( extended_enat2 @ ( times_times @ nat @ O @ P4 ) )
              @ ( if @ extended_enat
                @ ( O
                  = ( zero_zero @ nat ) )
                @ ( zero_zero @ extended_enat )
                @ ( extend1396239628finity @ extended_enat ) )
              @ N3 )
          @ ( if @ extended_enat
            @ ( N3
              = ( zero_zero @ extended_enat ) )
            @ ( zero_zero @ extended_enat )
            @ ( extend1396239628finity @ extended_enat ) )
          @ M3 ) ) ) ).

% times_enat_def
thf(fact_174_mult__not__zero,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
           != ( zero_zero @ A ) )
         => ( ( A2
             != ( zero_zero @ A ) )
            & ( B2
             != ( zero_zero @ A ) ) ) ) ) ).

% mult_not_zero
thf(fact_175_divisors__zero,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
         => ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% divisors_zero
thf(fact_176_no__zero__divisors,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( B2
             != ( zero_zero @ A ) )
           => ( ( times_times @ A @ A2 @ B2 )
             != ( zero_zero @ A ) ) ) ) ) ).

% no_zero_divisors
thf(fact_177_mult__left__cancel,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( C2
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ C2 @ A2 )
              = ( times_times @ A @ C2 @ B2 ) )
            = ( A2 = B2 ) ) ) ) ).

% mult_left_cancel
thf(fact_178_mult__right__cancel,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( C2
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ A2 @ C2 )
              = ( times_times @ A @ B2 @ C2 ) )
            = ( A2 = B2 ) ) ) ) ).

% mult_right_cancel
thf(fact_179_linordered__comm__semiring__strict__class_Ocomm__mult__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linord893533164strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
           => ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) ) ) ) ) ).

% linordered_comm_semiring_strict_class.comm_mult_strict_left_mono
thf(fact_180_mult__less__cancel__right__disj,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [A2: A,C2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ C2 ) @ ( times_times @ A @ B2 @ C2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
              & ( ord_less @ A @ A2 @ B2 ) )
            | ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% mult_less_cancel_right_disj
thf(fact_181_mult__strict__right__mono,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ C2 ) @ ( times_times @ A @ B2 @ C2 ) ) ) ) ) ).

% mult_strict_right_mono
thf(fact_182_mult__strict__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [B2: A,A2: A,C2: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ C2 ) @ ( times_times @ A @ B2 @ C2 ) ) ) ) ) ).

% mult_strict_right_mono_neg
thf(fact_183_mult__less__cancel__left__disj,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
              & ( ord_less @ A @ A2 @ B2 ) )
            | ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% mult_less_cancel_left_disj
thf(fact_184_mult__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
           => ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) ) ) ) ) ).

% mult_strict_left_mono
thf(fact_185_mult__strict__left__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [B2: A,A2: A,C2: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) ) ) ) ) ).

% mult_strict_left_mono_neg
thf(fact_186_mult__less__cancel__left__pos,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
         => ( ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) )
            = ( ord_less @ A @ A2 @ B2 ) ) ) ) ).

% mult_less_cancel_left_pos
thf(fact_187_mult__less__cancel__left__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [C2: A,A2: A,B2: A] :
          ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) )
            = ( ord_less @ A @ B2 @ A2 ) ) ) ) ).

% mult_less_cancel_left_neg
thf(fact_188_zero__less__mult__pos2,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ B2 @ A2 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).

% zero_less_mult_pos2
thf(fact_189_zero__less__mult__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).

% zero_less_mult_pos
thf(fact_190_zero__less__mult__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_less_mult_iff
thf(fact_191_mult__pos__neg2,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_pos_neg2
thf(fact_192_mult__pos__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_pos_pos
thf(fact_193_mult__pos__neg,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_pos_neg
thf(fact_194_mult__neg__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_neg_pos
thf(fact_195_mult__less__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% mult_less_0_iff
thf(fact_196_not__square__less__zero,axiom,
    ! [A: $tType] :
      ( ( linordered_ring @ A @ ( type @ A ) )
     => ! [A2: A] :
          ~ ( ord_less @ A @ ( times_times @ A @ A2 @ A2 ) @ ( zero_zero @ A ) ) ) ).

% not_square_less_zero
thf(fact_197_mult__neg__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_neg_neg
thf(fact_198_nat__mult__less__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
        & ( ord_less @ nat @ M @ N ) ) ) ).

% nat_mult_less_cancel_disj
thf(fact_199_transfer__int__nat__relations_I2_J,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less @ int @ ( semiring_1_of_nat @ int @ X2 ) @ ( semiring_1_of_nat @ int @ Y3 ) )
      = ( ord_less @ nat @ X2 @ Y3 ) ) ).

% transfer_int_nat_relations(2)
thf(fact_200_transfer__int__nat__numerals_I1_J,axiom,
    ( ( zero_zero @ int )
    = ( semiring_1_of_nat @ int @ ( zero_zero @ nat ) ) ) ).

% transfer_int_nat_numerals(1)
thf(fact_201_transfer__int__nat__relations_I1_J,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ( semiring_1_of_nat @ int @ X2 )
        = ( semiring_1_of_nat @ int @ Y3 ) )
      = ( X2 = Y3 ) ) ).

% transfer_int_nat_relations(1)
thf(fact_202_int__if__cong,axiom,
    ! [P: $o,X2: nat,Y3: nat] :
      ( ( P
       => ( ( semiring_1_of_nat @ int @ X2 )
          = ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X2 @ Y3 ) ) ) )
      & ( ~ P
       => ( ( semiring_1_of_nat @ int @ Y3 )
          = ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X2 @ Y3 ) ) ) ) ) ).

% int_if_cong
thf(fact_203_nat__mult__eq__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ K @ M )
        = ( times_times @ nat @ K @ N ) )
      = ( ( K
          = ( zero_zero @ nat ) )
        | ( M = N ) ) ) ).

% nat_mult_eq_cancel_disj
thf(fact_204_Nat__Transfer_Otransfer__int__nat__functions_I2_J,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( times_times @ int @ ( semiring_1_of_nat @ int @ X2 ) @ ( semiring_1_of_nat @ int @ Y3 ) )
      = ( semiring_1_of_nat @ int @ ( times_times @ nat @ X2 @ Y3 ) ) ) ).

% Nat_Transfer.transfer_int_nat_functions(2)
thf(fact_205_nat__mult__less__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
        = ( ord_less @ nat @ M @ N ) ) ) ).

% nat_mult_less_cancel1
thf(fact_206_nat__mult__eq__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ( times_times @ nat @ K @ M )
          = ( times_times @ nat @ K @ N ) )
        = ( M = N ) ) ) ).

% nat_mult_eq_cancel1
thf(fact_207_linordered__field__class_Osign__simps_I45_J,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% linordered_field_class.sign_simps(45)
thf(fact_208_linordered__field__class_Osign__simps_I44_J,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% linordered_field_class.sign_simps(44)
thf(fact_209_linordered__field__no__ub,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [X5: A] :
        ? [X1: A] : ( ord_less @ A @ X5 @ X1 ) ) ).

% linordered_field_no_ub
thf(fact_210_linordered__field__no__lb,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [X5: A] :
        ? [Y5: A] : ( ord_less @ A @ Y5 @ X5 ) ) ).

% linordered_field_no_lb
thf(fact_211_linordered__field__class_Osign__simps_I25_J,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [B2: A,A2: A,C2: A] :
          ( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C2 ) )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).

% linordered_field_class.sign_simps(25)
thf(fact_212_linordered__field__class_Osign__simps_I24_J,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ( ( times_times @ A )
        = ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).

% linordered_field_class.sign_simps(24)
thf(fact_213_linordered__field__class_Osign__simps_I23_J,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A,C2: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C2 )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).

% linordered_field_class.sign_simps(23)
thf(fact_214_scount__eq,axiom,
    ! [A: $tType] :
      ( ( coindu1365464361scount @ A )
      = ( ^ [P2: ( stream @ A ) > $o,Omega2: stream @ A] :
            ( if @ extended_enat @ ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P2 ) @ Omega2 ) @ ( extend1396239628finity @ extended_enat )
            @ ( extended_enat2
              @ ( finite_card @ nat
                @ ( collect @ nat
                  @ ^ [I2: nat] : ( P2 @ ( sdrop @ A @ I2 @ Omega2 ) ) ) ) ) ) ) ) ).

% scount_eq
thf(fact_215_semiring__normalization__rules_I10_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% semiring_normalization_rules(10)
thf(fact_216_semiring__normalization__rules_I7_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ( ( times_times @ A )
        = ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).

% semiring_normalization_rules(7)
thf(fact_217_semiring__normalization__rules_I13_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Ly: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ ( times_times @ A @ Ly @ Ry ) ) ) ) ).

% semiring_normalization_rules(13)
thf(fact_218_semiring__normalization__rules_I14_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Ly: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ ( times_times @ A @ Rx @ Ry ) ) ) ) ) ).

% semiring_normalization_rules(14)
thf(fact_219_semiring__normalization__rules_I15_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Ly: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ Rx @ ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Ry ) ) ) ) ).

% semiring_normalization_rules(15)
thf(fact_220_semiring__normalization__rules_I16_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Ly: A,Rx: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
          = ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ly ) ) ) ).

% semiring_normalization_rules(16)
thf(fact_221_semiring__normalization__rules_I17_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Ly: A,Rx: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
          = ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ Rx ) ) ) ) ).

% semiring_normalization_rules(17)
thf(fact_222_semiring__normalization__rules_I18_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ry ) ) ) ).

% semiring_normalization_rules(18)
thf(fact_223_semiring__normalization__rules_I19_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [Lx: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ Rx @ ( times_times @ A @ Lx @ Ry ) ) ) ) ).

% semiring_normalization_rules(19)
thf(fact_224_scount__eq__card,axiom,
    ! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
      ( ( linear505997466_on_ev @ A
        @ ( linear1386806755on_alw @ A
          @ ^ [Xs: stream @ A] :
              ~ ( P @ Xs ) )
        @ Omega )
     => ( ( coindu1365464361scount @ A @ P @ Omega )
        = ( extended_enat2
          @ ( finite_card @ nat
            @ ( collect @ nat
              @ ^ [I2: nat] : ( P @ ( sdrop @ A @ I2 @ Omega ) ) ) ) ) ) ) ).

% scount_eq_card
thf(fact_225_semiring__normalization__rules_I9_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% semiring_normalization_rules(9)
thf(fact_226_card__Collect__less__nat,axiom,
    ! [N: nat] :
      ( ( finite_card @ nat
        @ ( collect @ nat
          @ ^ [I2: nat] : ( ord_less @ nat @ I2 @ N ) ) )
      = N ) ).

% card_Collect_less_nat
thf(fact_227_sdrop__wait,axiom,
    ! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
      ( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
     => ( Phi @ ( sdrop @ A @ ( linear1335279038n_wait @ A @ Phi @ Xs2 ) @ Xs2 ) ) ) ).

% sdrop_wait
thf(fact_228_transfer__morphism__int__nat,axiom,
    ( nat_tr1645093318rphism @ nat @ int @ ( semiring_1_of_nat @ int )
    @ ^ [N3: nat] : $true ) ).

% transfer_morphism_int_nat
thf(fact_229_zero__less__ceiling,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type @ A ) )
     => ! [X2: A] :
          ( ( ord_less @ int @ ( zero_zero @ int ) @ ( archimedean_ceiling @ A @ X2 ) )
          = ( ord_less @ A @ ( zero_zero @ A ) @ X2 ) ) ) ).

% zero_less_ceiling
thf(fact_230_ceiling__zero,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type @ A ) )
     => ( ( archimedean_ceiling @ A @ ( zero_zero @ A ) )
        = ( zero_zero @ int ) ) ) ).

% ceiling_zero
thf(fact_231_ceiling__of__nat,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type @ A ) )
     => ! [N: nat] :
          ( ( archimedean_ceiling @ A @ ( semiring_1_of_nat @ A @ N ) )
          = ( semiring_1_of_nat @ int @ N ) ) ) ).

% ceiling_of_nat
thf(fact_232_ceiling__less__cancel,axiom,
    ! [A: $tType] :
      ( ( archim1727834104eiling @ A @ ( type @ A ) )
     => ! [X2: A,Y3: A] :
          ( ( ord_less @ int @ ( archimedean_ceiling @ A @ X2 ) @ ( archimedean_ceiling @ A @ Y3 ) )
         => ( ord_less @ A @ X2 @ Y3 ) ) ) ).

% ceiling_less_cancel
thf(fact_233_zero__less__nat__eq,axiom,
    ! [Z: int] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( nat2 @ Z ) )
      = ( ord_less @ int @ ( zero_zero @ int ) @ Z ) ) ).

% zero_less_nat_eq
thf(fact_234_ex__inverse__of__nat__less,axiom,
    ! [A: $tType] :
      ( ( archim1804426504_field @ A @ ( type @ A ) )
     => ! [X2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ X2 )
         => ? [N2: nat] :
              ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
              & ( ord_less @ A @ ( inverse_inverse @ A @ ( semiring_1_of_nat @ A @ N2 ) ) @ X2 ) ) ) ) ).

% ex_inverse_of_nat_less
thf(fact_235_inverse__zero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A @ ( type @ A ) )
     => ( ( inverse_inverse @ A @ ( zero_zero @ A ) )
        = ( zero_zero @ A ) ) ) ).

% inverse_zero
thf(fact_236_inverse__nonzero__iff__nonzero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ( inverse_inverse @ A @ A2 )
            = ( zero_zero @ A ) )
          = ( A2
            = ( zero_zero @ A ) ) ) ) ).

% inverse_nonzero_iff_nonzero
thf(fact_237_inverse__mult__distrib,axiom,
    ! [A: $tType] :
      ( ( field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( inverse_inverse @ A @ ( times_times @ A @ A2 @ B2 ) )
          = ( times_times @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) ) ) ) ).

% inverse_mult_distrib
thf(fact_238_nat__int,axiom,
    ! [N: nat] :
      ( ( nat2 @ ( semiring_1_of_nat @ int @ N ) )
      = N ) ).

% nat_int
thf(fact_239_inverse__positive__iff__positive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
          = ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% inverse_positive_iff_positive
thf(fact_240_inverse__negative__iff__negative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
          = ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% inverse_negative_iff_negative
thf(fact_241_inverse__less__iff__less__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) )
              = ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% inverse_less_iff_less_neg
thf(fact_242_inverse__less__iff__less,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) )
              = ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% inverse_less_iff_less
thf(fact_243_nat__0,axiom,
    ( ( nat2 @ ( zero_zero @ int ) )
    = ( zero_zero @ nat ) ) ).

% nat_0
thf(fact_244_zless__nat__conj,axiom,
    ! [W: int,Z: int] :
      ( ( ord_less @ nat @ ( nat2 @ W ) @ ( nat2 @ Z ) )
      = ( ( ord_less @ int @ ( zero_zero @ int ) @ Z )
        & ( ord_less @ int @ W @ Z ) ) ) ).

% zless_nat_conj
thf(fact_245_zless__nat__eq__int__zless,axiom,
    ! [M: nat,Z: int] :
      ( ( ord_less @ nat @ M @ ( nat2 @ Z ) )
      = ( ord_less @ int @ ( semiring_1_of_nat @ int @ M ) @ Z ) ) ).

% zless_nat_eq_int_zless
thf(fact_246_positive__imp__inverse__positive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ).

% positive_imp_inverse_positive
thf(fact_247_negative__imp__inverse__negative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) ) ) ) ).

% negative_imp_inverse_negative
thf(fact_248_inverse__positive__imp__positive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
         => ( ( A2
             != ( zero_zero @ A ) )
           => ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ) ).

% inverse_positive_imp_positive
thf(fact_249_inverse__negative__imp__negative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
         => ( ( A2
             != ( zero_zero @ A ) )
           => ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ) ).

% inverse_negative_imp_negative
thf(fact_250_less__imp__inverse__less__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( inverse_inverse @ A @ B2 ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).

% less_imp_inverse_less_neg
thf(fact_251_inverse__less__imp__less__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ B2 @ A2 ) ) ) ) ).

% inverse_less_imp_less_neg
thf(fact_252_less__imp__inverse__less,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A @ ( type @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( inverse_inverse @ A @ B2 ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).

% less_imp_inverse_less

%----Type constructors (37)
thf(tcon_Int_Oint___Rings_Osemiring__no__zero__divisors__cancel,axiom,
    semiri1923998003cancel @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__comm__semiring__strict,axiom,
    linord893533164strict @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__semiring__strict,axiom,
    linord20386208strict @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Osemiring__no__zero__divisors,axiom,
    semiri1193490041visors @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__ring__strict,axiom,
    linord581940658strict @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__semidom,axiom,
    linordered_semidom @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Groups_Oab__semigroup__mult,axiom,
    ab_semigroup_mult @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__ring,axiom,
    linordered_ring @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Olinordered__idom,axiom,
    linordered_idom @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Ocomm__semiring__1,axiom,
    comm_semiring_1 @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Groups_Osemigroup__mult,axiom,
    semigroup_mult @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Nat_Osemiring__char__0,axiom,
    semiring_char_0 @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Osemiring__1,axiom,
    semiring_1 @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Rings_Omult__zero,axiom,
    mult_zero @ int @ ( type @ int ) ).

thf(tcon_Int_Oint___Groups_Ozero,axiom,
    zero @ int @ ( type @ int ) ).

thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors__cancel_1,axiom,
    semiri1923998003cancel @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__comm__semiring__strict_2,axiom,
    linord893533164strict @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
    canoni770627133id_add @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semiring__strict_3,axiom,
    linord20386208strict @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors_4,axiom,
    semiri1193490041visors @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semidom_5,axiom,
    linordered_semidom @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult_6,axiom,
    ab_semigroup_mult @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Ocomm__semiring__1_7,axiom,
    comm_semiring_1 @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Groups_Osemigroup__mult_8,axiom,
    semigroup_mult @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Nat_Osemiring__char__0_9,axiom,
    semiring_char_0 @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Osemiring__1_10,axiom,
    semiring_1 @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Rings_Omult__zero_11,axiom,
    mult_zero @ nat @ ( type @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ozero_12,axiom,
    zero @ nat @ ( type @ nat ) ).

thf(tcon_Extended__Nat_Oenat___Groups_Ocanonically__ordered__monoid__add_13,axiom,
    canoni770627133id_add @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Rings_Osemiring__no__zero__divisors_14,axiom,
    semiri1193490041visors @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Groups_Oab__semigroup__mult_15,axiom,
    ab_semigroup_mult @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Rings_Ocomm__semiring__1_16,axiom,
    comm_semiring_1 @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Groups_Osemigroup__mult_17,axiom,
    semigroup_mult @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Nat_Osemiring__char__0_18,axiom,
    semiring_char_0 @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Rings_Osemiring__1_19,axiom,
    semiring_1 @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Rings_Omult__zero_20,axiom,
    mult_zero @ extended_enat @ ( type @ extended_enat ) ).

thf(tcon_Extended__Nat_Oenat___Groups_Ozero_21,axiom,
    zero @ extended_enat @ ( type @ extended_enat ) ).

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X2: A,Y3: A] :
      ( ( if @ A @ $false @ X2 @ Y3 )
      = Y3 ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X2: A,Y3: A] :
      ( ( if @ A @ $true @ X2 @ Y3 )
      = X2 ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ( ( ord_less @ extended_enat @ ( extended_enat2 @ ( zero_zero @ nat ) ) @ ( coindu76177514sfirst @ a @ p @ omega ) )
    = ( ~ ( p @ ( sdrop @ a @ ( zero_zero @ nat ) @ omega ) ) ) ) ).

%------------------------------------------------------------------------------